package com.zhuoyue.system.mapper;

import java.time.LocalDateTime;
import java.util.List;

import com.zhuoyue.system.domain.TblProductInfo;

/**
 * imageMapper接口
 *
 * @author hewenze
 * @date 2020-08-21
 */
public interface ProductInfoMapper {
    /**
     * 查询image
     *
     * @param id imageID
     * @return image
     */
    TblProductInfo selectProductInfoById(String id);


    /**
     * 查询image
     *
     * @param id imageID
     * @return image
     */
    public List<TblProductInfo> selectProductInfoByCategoryId(long categoryId);

    /**
     * 查询产品信息列表
     *
     * @param sysImage image
     * @return image集合
     */
//    @DataScope(deptAlias = "d")
    List<TblProductInfo> selectProductInfoList(TblProductInfo sysImage);

    /**
     * 根据产品类型获取产品对应的默认名称
     *
     * @param productType
     * @return
     */
    TblProductInfo selectProdDefaultName(String productType);

    /**
     * app查询产品信息列表
     *
     * @param sysImage image
     * @return image集合
     */
    List<TblProductInfo> selectProductInfoListForApp(TblProductInfo sysImage);

    /**
     * 新增image
     *
     * @param sysImage image
     * @return 结果
     */
    int insertProductInfo(TblProductInfo sysImage);

    /**
     * 修改image
     *
     * @param sysImage image
     * @return 结果
     */
    int updateProductInfo(TblProductInfo sysImage);

    // 修改产品信息ID
    int updateIdByZImageUid(TblProductInfo sysImage);
    int updateIdByZImageUidAPP(TblProductInfo sysImage);

    // 修改产品信息入网图三个字段的值
    int updateRImageByid(TblProductInfo sysImage);
    int updateRImageByidAPP(TblProductInfo sysImage);

    /**
     * 删除image
     *
     * @param id imageID
     * @return 结果
     */
    int deleteProductInfoById(Long id);

    /**
     * 批量删除image
     *
     * @param productInfoId 需要删除的数据ID
     * @return 结果
     */
    int deleteProductInfoByIds(String productInfoId);

    /**
     * 查询某一个系列下的自动入网产品的数量
     *
     * @param seriesId
     * @return
     */
    int getCountOfZdrwInOneSeries(Long seriesId);

    /**
     * 设置某个一产品类型下的所有产品的自动入网状态为否
     *
     * @param categoryId
     * @return
     */
    int setZdrwDisableOfCategory(Long categoryId);

    /**
     * 查询app数据表中最后更新的时间
     *
     * @return
     */
    LocalDateTime getLatestUpdateTimeOfApp();
}
